/**
 * js多行注释 建议使用多行注释 
 */

/**
 * var声明变量特点：
 *  1.会进行变量提升 29
 *      console.log(a);//undefiend
 *      var a = 10;
 *      解析顺序：
 *          var a;
 *          console.log(a);//undefiend
 *          a = 10;
 *  2.可以重复声明变量  34
 *      var a = 10;
 *      var a = 20;
 *      var a = true;
 *  3.使用var声明变量不存在块级作用域
 *      if(){
 *          var a = 10;
 *      }  
 *      console.log(a);//10 在外部是可以访问
 *      for(){}
 */

/**
 * let声明变量特点：
 *  1.不会进行变量提升
 *      console.log(a);//报错
        let a = 10;
    2.不可以重复声明变量
        let a = 10;
        let a = 20;//报错
    3.存在块级作用域
        if(true){
            let a = 10;
        }
        console.log(a);//访问不到
 */

/**
 * const声明变量特点：
 *  1.不会进行变量提升
 *      console.log(a);//报错 
        const a = 10;
    2.不可以重复声明变量
        const a = 10;
        const a = 20;//错误
    3.存在块级作用域 
        if(true){
            const a = 10;
        }
    console.log(a,'-----');//error a is not defined
    4.使用const声明变量必须进行初始化
        const a;//错误的 必须赋值
        const a = 10;//正确的
    5.const声明变量赋值后不可修改 所以一般用于声明常量
        const a = 10;
        a = 20;//不可以修改 
        console.log(a);//错误的
 */
